import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Puntos que recorren el escenario, simulando movimiento
 * 
 * @author Luis Guajardo Olvera
 * @author Daniel Romero Martí
 */
public class Punto extends Actor
{ 
    int tiempo;
    int x;
    int y;

    /**
     * Constructor de la clase Punto
     */
    public Punto()
    { 
        tiempo = 0;
    }

    /**
     * Act - do whatever the punto wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    { x = this.getX();
        y = this.getY();
        tiempo++;

        this.Mueve();

        this.Posicion();
    }

    /**
     * Mueve los puntos en el mundo de manera paralela para simular un efecto de profundidad 
     */
    public void Mueve()
    {  

        if(x>=290 && x<=470)
            if(tiempo==2)
            {   setLocation(x+1,y+1);
                tiempo=0;
            }
            else
                setLocation(x,y+1);

            else if(x<=128)
                if(tiempo==2)
                {   setLocation(x-2,y+1);
                    tiempo=0;
                }
                else
                    setLocation(x,y+1);
                else if(x>=128 && x<=290)
                    if(tiempo==2)
                    {   setLocation(x-1,y+1);
                        tiempo=0;
                    }
                    else
                        setLocation(x,y+1);
                    else if(x>=410)
                        if(tiempo==2)
                        {   setLocation(x+2,y+1);
                            tiempo=0;
                        }
                        else
                            setLocation(x,y+1);
    }

    /**
     * Metodo que regresa el punto a su posición inicial
     */
    public void Posicion()
    { World mundo;
        mundo = getWorld();

        if(x<0 && y>mundo.getHeight())
            setLocation(127,186);
        if(x>0 && x<mundo.getWidth()/2 && y>mundo.getHeight())
            setLocation(236,186);
        if(x>mundo.getWidth()/2 && x<mundo.getWidth() && y>mundo.getHeight())
            setLocation(353,186);
        if(x>mundo.getWidth() && y>mundo.getHeight())
            setLocation(470,186);
    }
}
